package com.xbn.common.valid.annotation;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

/**
 * @author XBN
 * @date 2020/7/9 13:20
 * @email 78742541@qq.com
 */
/*
* 自定义校验器，需要实现ConstraintValidator，后面的两个参数分别标识注解以及适用的校验数据类型
* */
public class ListValuesConstraintValidator implements ConstraintValidator<ListValues,Integer> {

    private int[] vals;
   /*
   * 初始化方法
   * */
    @Override
    public void initialize(ListValues constraintAnnotation) {
        //获取注解上标识的vals
        vals = constraintAnnotation.vals();

    }
/*
*判断是否校验成功，其中第一个Integer类型的参数标识我们需要校验的字段的值（被校验的值）
*循环判断数组就好了
* */
    @Override
    public boolean isValid(Integer integer, ConstraintValidatorContext constraintValidatorContext) {
        boolean b=false;
        for (int val: vals
             ) {
            if(integer==val)
            {
                b=true;
                break;
            }
        }
        return b;
    }
}
